81 - 3 Ladestrategie [ID:28099]
50 von 168 angezeigt

Ja, starten wir mal zunächst mit der Ladestrategie. Einen kurzen Überblick und dann werde ich ein

bisschen umfassender einen Aspekt der Seitenumlagerung erläutern. Es geht um die Einlagerung der

sogenannten Gebrauchsstücke, die wir ja in der letzten Vorlesung bei der Betrachtung der

Platzierungsstrategie schon kennengelernt haben. Diese Gebrauchsstücke sind jetzt hier bei der

Speichervirtualisierung praktisch ein umlagerungsfähiger Bestandteil eines Prozess-Adressraums,

wo praktisch Format und Größe eines solchen Stückes eben durch die MMU, durch die Adressumsetzungseinheit

bestimmt ist. Also hier sehen wir schon eine gewisse Hardware-Abhängigkeit. Format kann Seite

oder Segment sein und die Größe ist dann damit je nach Format fest oder eben veränderlich.

Für beide Formatarten gilt eigentlich das, was ich jetzt hier von einer rein konzeptionellen

Seite erläutere, aber praktisch durchgesetzt hat sich diese Speichervirtualisierung bezüglich Seiten,

deshalb reden wir auch von Seitenumlagerung und von Paging und da werden wir uns deshalb eben auch

im weiteren Verlauf der Vorlesungen dann darauf konzentrieren auf die Seitenumlagerung,

Seiteneinlagerung, Erseitenersetzung. Nun, wir sprechen einmal von der sogenannten Einzelanforderung,

On-Demand Paging zum Beispiel. Diese Einzelanforderung wird gesteuert durch ein Präsenzbild in dem

entsprechenden Diskriptor für dieses Gebrauchsstück. Der Diskriptor, der von der Adressumsetzungseinheit in

Abhängigkeit von der jeweiligen virtuellen Adresse, denn aus der Tabelle, aus der Seitensegmenttabelle,

Seitentabelle ausgelesen wird und da schaut man nach, also die RMU überprüft letztendlich,

ob denn der Zugriff auf dieses, auf diesen Stück Speicherbereich jetzt wirklich möglich ist. Das

wäre nämlich genau dann der Fall, wenn dieses Gebrauchsstück, wenn die Seite das Segment anwesend

ist oder ob der Zugriff eben jetzt direkt nicht möglich ist. Das heißt, die Seite oder das Segment

eben ausgelagert ist und das würde dann zu dem sogenannten Page Fault oder Segment Fault

letztendlich führen. Seitenfehler, Segmentfehler, der dann halt vom Betriebssystem behandelt werden

muss. Und genau dann in dem Fall, in dem Fall der Abwesenheit wird eben die partielle Interpretation

des Zugriffs als Ausnahmabehandlung verstanden und eben durch das Betriebssystem durchgeführt.

Veranlassen tut diese partielle Interpretation die RMU, das ist der Trepp, der Page Fault zum

Beispiel, der eben ausgelöst wird und damit der laufende Prozess letztendlich unterbrochen wird,

auf Basis der Tatsache, dass in dem betreffenden Seiten des Skripto oder Segmentes Skripto, das

Präsenzbit eben auf Null ist, also Anzeige, dass das Gebrauchsstück nicht anwesend im Hauptspeicher

ist. Die andere Variante ist das Vorausladen, antizipatorisch vorangehen. Das heißt, man möchte

ja eigentlich diesen Einzelanforderungen zuvorkommen, dem Trepp, die Treppehandlung,

die damit verbunden ist. Das ist das, was man als Pre-Fetching, so Vorabruf von Seiten von

Segmenten denn bezeichnen würde. Dazu müsste man natürlich wissen, wann man welche Seite praktisch

referenzieren würde. Oder man lässt einen Trepp zu und sieht dann zu, dass man mögliche Folgefehler

bei der weiteren Ausführung dieses jetzt gerade unterbrochenen Maschinenbefehls denn in

Octaform vermieden werden können. Da gehe ich dann gleich später nochmal drauf ein. Nun, wichtig ist

hier für das Vorausladen eigentlich die zukünftigen Zugriffe zu identifizieren und dazu kann man

eigentlich heute nur auf Heuristiken zurückgreifen, die dann die entsprechenden Hinweise darüber

geben, ob denn ein Prozess einen bestimmten Speicherbereich in seinem Adressraum denn

referenzieren wird oder nicht. Und das hat dann wiederum mit der sogenannten Prozesslokalität

zu tun. Ein anderer Begriff, den wir denn später in der Vorlesung noch behandeln werden, ist der

Begriff der sogenannten Arbeitswänge, der Working Set eines solchen Prozesses. Wenn man diese

Informationen halt hat, dann kann man eigentlich gut vorhersagen, wann bestimmte Speicherbereiche

für den Prozess im Hauptspeicher verfügbar sein müssen, damit der Prozess ohne Unterbrechung

sozusagen ausgeführt und fortgesetzt werden kann. Nun, dieses Vorausladen wird immer durchs

Betriebssystem veranlasst. Initial kann für den ersten Trepp, den man hat, natürlich der

NMU verantwortlich sein, aber wenn man denn voraus von Vorausladen und vom Nachladen diesbezüglich

dann halt spricht, dann ist das Betriebssystem aufgrund der Treppehandlung ja schon aktiv und

wird dann halt weitere Maßnahmen praktisch ergreifen können. Nun, möglicherweise kann in beiden Fällen

hier jetzt die Verdrängung von anwesenden Stücken von sich im hauptspeicherbefindlichen Speicherbereichen

von demselben oder von anderen Prozessen geschehen. Das ist genau das, was die Ersetzung denn ausmacht

Teil eines Kapitels:
12.3 Speichervirtualisierung

Zugänglich über

Offener Zugang

Dauer

00:18:08 Min

Aufnahmedatum

2021-01-18

Hochgeladen am

2021-01-18 11:29:50

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen